package name.jautzy.esi.client.service;

import java.util.List;

import name.jautzy.esi.client.model.EdbAttribute;
import name.jautzy.esi.client.model.EdbBonus;
import name.jautzy.esi.client.model.EdbCategory;
import name.jautzy.esi.client.model.EdbEffect;
import name.jautzy.esi.client.model.EdbEquipment;
import name.jautzy.esi.client.model.EdbGroup;
import name.jautzy.esi.client.model.EdbObject;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface EveDatabaseServiceAsync {

	void getCategories(AsyncCallback<List<EdbObject>> callback);

	void getObjects(EdbObject parent, AsyncCallback<List<EdbObject>> callback);

	void getGroups(EdbCategory parent, AsyncCallback<List<EdbObject>> callback);

	void getEquipments(EdbGroup parent, AsyncCallback<List<EdbObject>> callback);

	void getShipGroups(AsyncCallback<List<EdbGroup>> callback);

	void getEffects(EdbEquipment parent, AsyncCallback<List<EdbEffect>> callback);

	void getAttributes(EdbEquipment parent,
			AsyncCallback<List<EdbAttribute>> callback);

	void getBonus(EdbEquipment parent, AsyncCallback<List<EdbBonus>> callback);

	void updateBonus(List<EdbBonus> bonuses, EdbEquipment parent,
			AsyncCallback<Void> callback);

	void removeBonus(List<EdbBonus> bonuses, AsyncCallback<Void> callback);

}
